Context-sensitive remote controls

ABSTRACT

Subject matter includes a reprogrammer for roving remote controllers that are capable of being used in multiple locations with different devices to be controlled at each location. An exemplary roving remote controller changes control code sets to operate whatever devices are present in a particular room. In one implementation, an exemplary multimedia system has reprogrammers for one or more roving remote controllers that adapt to their setting. When a remote controller is moved from a first room to a second room, the program content being controlled in the first room is automatically transferred to the second room.

RELATED APPLICATIONS

The present application is a continuation application claiming priorityto U.S. patent application Ser. No. 10/641,424 to Daniel J. Zigmond etal., entitled, “Context Sensitive Remote Control,” filed Aug. 15, 2003,now U.S. Pat. No. 7,064,675.

TECHNICAL FIELD

This invention relates generally to multimedia systems and specificallyto context-sensitive remote controls.

BACKGROUND

Many households have multiple television and multimedia devicesincluding TVs, video cassette recorders (VCRs), digital versatile disc(DVD) players, stereos, and the like (“controllable devices”). Alice isa homeowner who likes stereo music in her living room and in her bedroomwhile reading. She also likes various television programs while relaxingand when she does chores in specific rooms such as the kitchen andutility room.

The various TV sets and video players around Alice's house are beginningto get a little out of hand. The remote controllers (“remotes”) forthese various controllable devices only work well with the one device orbrand of device that they were created to control. Although Alice hasfive video and stereo components in her main living room entertainmentcenter, these five components still require four remote control units.Alice finds herself inadvertently carrying remote controllers from someof the rooms into the kitchen when she wants a snack and getting theremotes mixed up with other remotes that are native to the kitchen. Allnine of the remote controllers she has stationed around her house lookthe same because they have similar shapes and colors.

Sometimes a remote controller that Alice has unconsciously carried to adifferent room does not work at all with any of the components in thatroom, but sometimes the transported remote works for some functions butnot for others. Alice sometimes grabs the wrong remote controller duringan exciting part of a show and finds that the volume controls do notwork or the “Begin Recording” key does not function—she has picked upthe wrong remote!

SUMMARY

Subject matter includes a reprogrammer for roving remote controllersthat are capable of being used in multiple locations with differentdevices to be controlled at each location. An exemplary roving remotecontroller changes control code sets to operate whatever devices arepresent in a particular room. In one implementation, an exemplarymultimedia system has reprogrammers for one or more roving remotecontrollers that adapt to their setting. When a remote controller ismoved from a first room to a second room, the program content beingcontrolled in the first room is automatically transferred to the secondroom.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a graphic representation of a home system using reprogrammersfor remote controllers.

FIG. 2 is a graphic representation of an exemplary media network thatuses portable context-sensitive remotes.

FIG. 3 is a block diagram of components in an exemplary media network.

FIG. 4 is a flow diagram of an exemplary method of enabling acontext-sensitive remote.

FIG. 5 is a flow diagram of an exemplary method of using acontext-sensitive remote.

FIG. 6 is a graphic representation of exemplary code set adaptation inan exemplary media network.

FIG. 7 is a graphic representation of exemplary communication betweencomponents of an exemplary media network.

FIG. 8 is graphic representation of an alternative technique foradapting code sets in exemplary remotes.

FIG. 9 is a block diagram of an exemplary computer suitable forperforming parts of the subject matter.

DETAILED DESCRIPTION

Overview

Subject matter includes a reprogrammer for remote controllers(“remotes”) that are capable of being used in multiple locations withdifferent devices to be controlled at each location. In oneimplementation, an exemplary multimedia system uses the reprogrammersfor one or more roving remotes that can adapt to their setting so thatwhen one of the remotes is moved from a first room to a second room, theprogram content being controlled in the first room is automaticallytransferred to the second room.

In one implementation of the subject matter, an exemplary reprogrammernotifies each remote used in its presence of the proper code sets to beused for communicating with each controllable device in the location ofthe reprogrammer. An exemplary reprogrammer monitors for incomingsignals from a remote and sends out information for the remote to tuneitself to that location. The information sent from a reprogrammer to aremote for purposes of tuning to a location may consist of a code setidentifier (or “code set ID”). The code set identifier informs theremote to use a code set relevant to a controllable device in theinstant location. In some instances the reprogrammer may send the codeset itself to the remote if the remote does not possess it.

In the context of a multimedia system (“media network”), exemplaryreprogrammers may be used with (or as) nodes of the media network to notonly reprogram roving remotes as they are carried from room to room butalso to inform the media network's central hub of the location of eachremote so that the central hub can send programming content to whicheverroom a given remote currently occupies as it moves around the house.

In either implementation described above, when a remote is moved betweenrooms, e.g., from one reprogrammer or node to the next, the subsequentnode or reprogrammer instructs the remote to use proper code sets foroperating controllable devices in the current location. In a medianetwork context, where nodes are networked, the media network can retainnot only programming information but also settings, etc., that a user ofthe remote was enjoying in a previous room or location. The user mayhave paused a multimedia presentation, such as a broadcast televisionprogram at a certain sound volume in the previous room and when thepresence of the roving remote is sensed in the new room the medianetwork can automatically resume the program at a comparable initialsound volume in the new room and at the point in the program that theprogram was previously paused.

A “code set” as the phrase is used herein can consist of a simpleinstruction implemented by a remote, or can be a set of instructions.Each code set is usually identified by a label or tag (“identifier”),for example, a four digit numeric identifier such as “0007.” A code setin a media network context is typically a collection of instructionsequences that cause a controllable device to perform various functions(channel change, fast forward, volume control, etc.). Likewise, besidesTVs, VCRs, and DVDs mentioned above, a “controllable device” can also bea cable box, a set top box, a compact disc (CD) player, an audio tuner,an audio cassette player/recorder, a satellite tuner, a laser discplayer, a computer, an appliance, a special effects device (e.g., anonstage fog machine), lights, an irrigation system, a sprinkler system,an airflow system, a burglar alarm system, an audio/visual surveillancesystem, etc. Thus, a code set for each of these controllable devices isa collection of instruction sequences relevant to each type ofcontrollable device.

In the description that follows, standalone reprogrammers (i.e.,reprogrammers that are not networked with each other or with a commonhub) will be described first, followed by description of reprogrammersthat are used in the context of an exemplary media network that uses thereprogrammers within the network structure.

Exemplary Systems

FIG. 1 shows a home 100 that includes three rooms in which threeimplementations of standalone reprogrammers 102, 104, 106 store and keeptrack of (“manage”) code sets for controllable devices in theirrespective rooms. Each of the three reprogrammers 102, 104, 106 storerequisite code sets for communicating with roving remotes, such asexemplary remote #3 128. Remote “#3” 128 is capable of transmitting toeach of the three reprogrammers 102, 104, 106 and is capable ofreceiving communication from these reprogrammers. This two-waycommunication allows a remote 128 to receive instructions to use codesets relevant for the controllable devices in each of the multiplelocations.

In the first implementation, a first reprogrammer 102 in a first room108 has pre-stored code sets for controlling a first TV 110, a DVDplayer 112, and a VCR 114. The first reprogrammer 102 is not incommunication with any of the controllable devices for which it managescode sets. Thus, the first reprogrammer 102 represents an implementationthat stores code sets and/or code set identifiers that have been input(or selected) by a user to control the controllable devices in alocation, e.g., room one 108, but has no other communicativerelationship with the controllable devices. When the first reprogrammer102 receives input from a remote newly arrived in its location, thereprogrammer 102 sends to the remote 128 the code set identifiers (orthe code sets themselves) which the remote then uses to communicatedirectly with the controllable device(s) in that location.

In the second implementation, the second reprogrammer 104 in the secondroom 116 has pre-stored control code sets for controlling a second TV118, and an auxiliary device, in this case, an outdoor home irrigationsystem 120. The second reprogrammer 104 is in communication with one ofthe controllable devices for which it manages a code set, namely theirrigation system 120, but is not in communication with the othercontrollable device for which it manages a code set, the secondtelevision 118. The second reprogrammer 104 represents an implementationthat may receive input (or selection) of code sets and code setidentifiers via a user and/or via a communicative link with a coupledcontrollable device, e.g., the irrigation system 120 or a control modulethereof. For some controllable devices in its location, the secondreprogrammer 104 may send a code set identifier or the code set itselfso that the remote 128 can control the controllable device directly. Butwith respect to other communicatively coupled controllable devices,because of the communicative coupling, the second reprogrammer 104 mayalso engage in some degree of communication and/or control with thecoupled controllable device. That is, after sending code set identifiersand/or code sets to a remote in its location, the second reprogrammer104 may mediate control of a controllable device by receivingcommunications from the remote (e.g., a code from a code set) and mayperform control of the controllable device. Hence, the remote 128 maysend an instruction to start the irrigation system 120 to the secondreprogrammer 104 and the second reprogrammer 104 starts the irrigationsystem 120.

In the implementation, the third reprogrammer 106 in the third room 122has pre-stored code sets for controlling a third TV 124, a stereo tuner126, and lights 127. The third reprogrammer is in communication with allthree controllable devices for which it manages code sets. The thirdreprogrammer 106 represents an implementation that may be programmedwith code sets and/or code set identifiers via a user and/or via acoupled controllable device. The third reprogrammer 106 may control someor all of the controllable devices or the remote 128 may control some orall of the controllable devices directly. The third reprogrammer 106performs the same functions in the same manner as the secondreprogrammer 104 described above and in addition can be programmed tocontrol a particular controllable device based on the functioning ofanother controllable device—or based on an instruction from a remoteintended for another controllable device. For example, the thirdreprogrammer 106 may automatically dim the lights 127 when the remote128 sets the stereo tuner 126 to a certain broadcast station, eventhough the remote 128 contains a code set for controlling the lights 127directly.

In each of the three implementations described above, the reprogrammers102, 104, 106 function in a standalone manner. Reprogrammers used in thecontext of an exemplary media network will now be described.

FIG. 2 shows an implementation of an exemplary media network 200 havinga central hub 202. In this implementation, each of the reprogrammers isa node (e.g., 204) or part of a node of the media network 200 andtherefore communicatively coupled with the central hub 202. In oneimplementation, when an exemplary remote, such as remote #3 128,transmits a command or a request, it sends within the transmission or inaddition to the transmission an identity signal, such as an identifierthat is unique to the remote 128 in the media network 100. When a node,such as the first node 204, receives a transmission from a “new” remote128, that is, a remote 128 with a different unique identifier than thelast remote to communicate with the node, then the node 204 transmits amessage to the remote 128 to use code sets appropriate for thecontrollable devices in the current location, in this case the first TV110, the DVD player 112, and the VCR 114 residing in room one 108. Thetransmitted message is typically an alphanumeric identifier for eachcode set stored in the remote 128 that is to be used in that location.The remote 128 then starts using the new code set(s) and can operate thecontrollable devices in the room 108. If the remote 128 is transportedto a different room, similar communications occur between another nodeand the remote 128.

It should be noted that a remote, such as exemplary remote “#3” 128,typically communicates directly with controllable devices coupled to anode of the media network 200. However, in this implementation, theremote 128 also communicates with the media network itself (200) via oneof the nodes in order to request program content or settings for use ona controllable device and to enable a user to navigate electronicprogram guide information.

When an exemplary remote 128 transmits its identity to a node (e.g.,206) and the node 206 responds by sending the remote 128 a message oridentifier to use different code sets for the new room context, the newcode sets may be implemented in several ways. In one implementation,each exemplary remote 128 contains a variety of code sets in an onboarddatabase. A code set can be made active for a given context. In anotherimplementation, code sets for controllable devices in a given room arestored in a node for that room and transmitted to a remote when theremote is used in that room. In yet another implementation, the codesets are stored in a hub 202 of the media network 100 and transmittedvia the nodes to remotes as needed for the controllable devices in aroom. In still another implementation, a hub or a node transmits allcode sets for an entire media network 100 in a single one-time“download” transmission into the remote so that the remote has all thecode sets for the entire media network 200 and can use theminterchangeably as instructed for a changing context.

In some implementations of an exemplary media network 200, a hub 202 canstore or provide program content, settings, and code sets for the entiremedia network 200 and all coupled controllable devices and also keeptrack of the state of each node and remote in the media network 200.Thus, when a remote 128 traverses from one room to the next, the hub 202can send program content and settings being used by the remote 128 towhichever room the remote 128 currently occupies.

In one implementation, a remote “#3” 128 periodically sends outtransmissions of its unique identifier, e.g., a number, such as “#3.” Anode in one of the rooms receives the identity transmission and makes ashift of programming to the program content that the remote 128 wascontrolling in its previous room. Hence, when a user, who has anexemplary media network 200 installed in his home, walks with his remotefrom the dining room to the kitchen, living room, and other roomsthroughout the house, the programming in each room changes to theprogram movie, or musical piece he is enjoying. In one implementation,when the user carries the remote 128 around the house, the programmingcontent in a given room along the user's travel path changes only if abutton on the remote is actuated. In another implementation, when theuser carries the remote 128 around the house, the programming content ina new room that the user enters changes only if a previously actuated“pause” button is “unpaused.”

In some implementations of a media network 200, a hub 202 may keep trackof timed and/or periodic household events. Hence, a roving remote 128may be able to control auxiliary devices, such as outdoor sprinklersystems, heating-ventilation-air conditioning systems, burglar alarmsystems, etc. as the roving remote 128 changes active code sets based onthe roving remote's current location and/or context.

FIG. 3 shows exemplary components 300 of an exemplary media network 200in greater detail. Exemplary components for a remote 128 include controllogic 302 communicatively coupled with data storage space 304, such asvolatile memory and/or a non-volatile storage medium, a transmitter 306,a receiver 308, an optional display 310, one or more keypads 312, and aninterface 314 for inputting control logic from an external computer 317and for inputting other information, for example, code sets for adatabase of code sets 316. The interface 314 may be a universal serialbus (USB) port, an RS-232 serial interface, an infrared transceiver,etc.

The data storage space 304 may contain an ID number 318 or otheridentifier that is unique to a remote 128, as well as active code sets320 for a given current context, and other programs 321, e.g., forrequesting program content from a hub 202 or for navigating electronicprogram guide information. The data storage space 304 can be implementedas a combination of read/write memory, such as static random accessmemory (SRAM), and read-only memory, such as electrically programmableread only memory (EPROM).

The transmitter 306 transmits communication and control signals viainfrared, radio frequency, or some other wireless means from the remote128 to a node 204 and to a receiver 322 associated with one of aplurality of controllable devices, e.g., TV 110.

The display 310 may optionally be present on the remote 128 to visuallydisplay information to the user. In one implementation, the display 310is a liquid crystal type.

The keypad(s) 312 enable a user to input data and command selections tothe remote 128 and may comprise various combinations of buttons andswitches, etc.

An exemplary remote 128 can include more, fewer, or different componentsas will be appreciated by those skilled in remote control arts.

Exemplary components for a node 204 (and/or reprogrammer) include nodecontrol logic 324, a node database of code sets 326, a transmitter 328,and a receiver 330. A node 204 may also include memory, a processor,and/or other computing components and may retain information onboard orreceive information from a hub 202.

An exemplary node 204 (and/or reprogrammer) can include more, fewer, ordifferent components as will be appreciated by those skilled incomputing and communications arts.

An exemplary hub 202 may contain a database of code sets 332 and maysend these and segments of program content 334, instructions, and/orsettings to nodes and controllable devices in the exemplary medianetwork 200. An exemplary hub 202 may also include network control logic338 and state information 336 that represents current locations and codesets in use by particular nodes, remotes, and other components in theexemplary media network 200. A hub 202 may share many of thecharacteristics of an exemplary computer 900, such as that illustratedin FIG. 9, and/or may be at least in part an exemplary computer 900suitable for implementing the media network 200.

In one implementation, a hub 202 serves as the central “brain” for anexemplary media network 200, while alternatively there may be multiplehubs. The nodes may serve as local onsite “brains” or control nexi foreach room serviced by an exemplary media network 200. Thus, one or morehub(s) 202, node(s) 102, remote(s) 128, and controllable device(s) 110coordinate with each other to allow one or more exemplary remote(s) 128to adapt to current contexts, thereby affording the user seamlesscontrol via one or more remotes that each function universally whenmoved around the home or other site.

Exemplary Methods

FIG. 4 shows an exemplary method 400 of imparting context sensitivity toa remote. In the flow diagram, the operations are summarized inindividual blocks.

At block 402, a remote 128 is sensed within the communication “range” ofa node in a multimedia network. The reprogrammer (e.g., 102) or node(e.g., 204) itself senses the remote 128. The sensing can includereceiving an identity signal from the remote controller, such as aunique identifier of the remote controller within the context of thegiven multimedia network as discussed above. An infrared sensor, avisible light sensor, a radio frequency sensor, a magnetic sensor,and/or an electrical sensor, etc., can be included in performing thesensing.

At block 404, the reprogrammer or node instructs the remote to use aparticular code set to control a device coupled with the media network.For example, the reprogrammer or node can instruct the remote to use acode set stored on the remote or can send the remote the code set, e.g.,from the node itself or from a hub of the media network 200, asdescribed above with respect to FIG. 2. For transmitting an instructionto a remote 128, an infrared, visible light, radio frequency, magnetic,and/or electrical transmission means can be used.

FIG. 5 shows another exemplary method 500 of imparting contextsensitivity to a remote. In the flow diagram, the operations aresummarized in individual blocks.

At block 502, an entity of a media network, such as a remote, a node, ora hub, remembers a multimedia event, e.g., a program, controlled in afirst room or location by an exemplary remote 128. Of course, multimediaevents include a condition or a setting of a device coupled with themedia network 200.

At block 504, when the remote moves from the first room or location to asecond room or location, the multimedia event is automatically resumedin the second room or location, e.g., at the point it was paused in thefirst room or location.

Exemplary Communication Through Code Sets

FIG. 6 shows exemplary code sets assigned to various components anddevices in an exemplary media network 600. In one implementation, eachnode 204, 206, 208 stores code sets and/or code set identifiers tocommunicate with each exemplary remote used in the media network 600.Hence, if six exemplary remotes are used, each node may store sixexemplary remote code sets or code set identifiers (unless all sixexemplary remotes use the same code set). Typically a large number ofcode sets are built into a remote and therefore each node may only needto store identifiers for each code set. When a node, such as the secondnode 206, receives a remote's identity signal, such as an ID number 318with a value of “3” for remote “#3” 128, the node 206 uses anappropriate code set to communicate with the recognized remote 128.

Each controllable device 110, 118, 124, 126 in the exemplary medianetwork 600 has a code set through which it can be controlled. Each node204, 104, 106 stores the code sets or code set identifiers to operateeach controllable device communicatively coupled with itself i.e., inits control domain. A node's control domain may be different than itscommunication range with one or more remotes. In other words, a node maycontrol a device that is far outside a home, for example, a lightingsystem on an out-building a half-mile away, but may have a communicationrange for remotes of only twenty feet as limited by the walls of a roomor the efficiency of a transceiver for communicating with the remotes.

The illustrated second node 206 stores the code sets or code setidentifiers of a coupled second TV 118 and a coupled first tuner 126.The code set for the second TV 118 is “0456” and the code set for thefirst tuner 126 is “WXYZ.” Remote “#3” 128, however, is not presently inthe same “room two” 116 as the second node 206. Thus, remote “#3” 128actively uses control codes appropriate for where it currently resides,namely, a code set “0123” for the first TV 110 in “room one” 108.

When remote “#3” 128 is moved from room one 108 to room two 116 ittransmits its identity to the second node 206 residing in room two 116.The transmission may occur when a button on remote “#3” 128 is actuated,or in one implementation, remote “#3” 128 sends out a periodic identitytransmission signals. If remote “#3” 128 is not “tuned” to thecontrollable devices 118, 126 in room two 116, then the second node 206sends a message to remote “#3” 128 instructing remote “#3” 128 to switchto the appropriate control codes and/or code sets 320′. As mentionedabove, in one implementation the second node 206 sends remote “#3” 128the identifier “0456” of appropriate code set(s) to use while in anotherimplementation the second node 206 sends remote #3 128 the actual codeset itself. In another or the same implementation, the second node 206does not retain or may not possess a code set for a particularcontrollable device (e.g., one of 118, 126) residing in its controldomain but instead requests the proper code set from a hub 202 andrelays the received code set to roving remote “#3” 128.

In one implementation, state information 336 and 336′ is retained in ahub 202 of the media network 600. When remote “#3” 128 was residing inroom one 108, the state information 336 for remote “#3” 128 may haveincluded, among other things, the remote's unique identifier 318 withinthe media network 600, pointers to the program content that remote “#3”128 was controlling, and a record of various current code sets beingused by remote “#3” 128 in room one 108. When remote “#3” 128 is move toroom two 116, at least part of the state information 336 may bediscarded in favor of new state information 336′ for remote “#3” 128.Hence, an identifier of a new code set “0456” for the second TV 118 inroom two 116 may be stored in the new state information 336′ as well asan identifier of an additional code set “WXYZ” for a first tuner 126that is also coupled with the second node 206 in room two 116. Anindication of the multimedia program that remote “#3” 128 wascontrolling may remain the same in the new state information 336′, i.e.,the state information 336′ may contain an indicator of progress withrespect to playback of a multimedia program. Thus, if remote “#3” 128,now in room two 116, unpauses a program that it previously paused inroom one 108, the hub 202 can consult the state information 336′ toresume play of the program in room two 116 instead of room one 108. Themultimedia program associated with remote “#3” 128 can be automaticallyresumed by remote “#3” 128 in any room or location served by the medianetwork 600 just by carrying remote “#3” 128 to a new room or location.

In one implementation, the “current” programming being controlled by anexemplary remote 128 may expire as state information 336′ for the remote128 after a predetermined interval of the remote's non-use, for exampletwenty minutes.

FIG. 7 shows exemplary “two-way” communications 700 between componentsof an exemplary media network, such as those illustrated in FIGS. 2 and6. In the illustrated example, remote “#3” 128 has just been transportedby a user from room one 108 to room two 116. Communication events andeffects are illustrated in blocks and lines of text.

At line 702, a user actuates a keypad “channel 2” button of remote “#3”128 located in room two 116 in order to tune the second TV 118 tochannel two. At block 704, remote “#3” 128 transmits an identifyingsignal representing the statement “Node, I am remote #3.” Within thesame transmission signal or in addition to it, at block 706 remote “#3”128 transmits a command signal to the second TV 118 to tune to channeltwo, representing, “TV, turn to channel two, please.” At line 708,nothing happens, because the control codes of code set “0456” foroperating the second TV 118 are not actively being used by remote “#3”128.

The node 206 receives the “I am remote #3” transmission and in responseat block 710 transmits a signal representing, “Remote #3, change your TVcontrol code set to code set 0456.” At block 712, the second node 206also notifies the hub 202 that remote “#3” 128 is now in room two 116and that the TV control code set “0456” will now be active for remote“#3” 128. At line 714, remote “#3” 128 receives the transmission fromthe node and begins using TV code set “0456” or alternatively, remote“#3” 128 receives a transmission of code set “0456” in an on-the-spotdownload and begins using the code set. At block 716, remote “#3” 128re-transmits “Node, I am remote #3” and also re-transmits “TV, turn tochannel 2 please.” At block 720, since remote “#3” 128 is now using thecorrect control code set “0456” for the second TV 118, the second TV 118tunes to channel 2.

A little later, the user actuates a TV “Up Volume” button on remote “#3”128. Remote “#3” 128 again transmits “Node, I am remote #3” just in caseremote “#3” 128 has been moved to a different room and also transmits asignal representing “TV, increase your volume please.” At block 728,since correct control codes are now in use by remote “#3” 128, thesecond TV 118 increases its audio volume.

A little later, the user actuates an “Unpause” button on remote “#3”128, as remote “#3” 128 includes a keypad section for such control. Theuser has previously paused a presentation of “Gone With The Wind” inroom one 108 before carrying remote “#3” 128 to room two 116. At block732, remote “#3” 128 transmits “Node, I am remote #3” and at block 734also transmits a signal representing “Node, please resume programmingthat I previously paused.” The second node 206 responds to the lattertransmission at block 734 by transmitting a signal representing arequest, “Hub, which movie did remote #3 last pause?” At block 738, thehub 202 responds with a signal representing, “Node #2, remote #3 wascontrolling ‘Gone With The Wind,’ here is the remainder of that movie.”At block 740, the second node 206 receives the programming content andcontrols the second TV 118, represented by “TV, please display ‘GoneWith The Wind’ beginning at this point (where paused).” At block 742,the second TV 118 displays “Gone With The Wind” beginning where themovie left off when it was previously paused in room one 108.

Further Exemplary Implementation

FIG. 8 shows an alternative implementation of an exemplary media network800, wherein a new controllable device 802 is added to the exemplarymedia network 800 by being coupled with a node of the media network,such as the second node 206 in room two 116.

In one implementation, each exemplary remote has a dynamic database ofcode sets 316 (FIG. 3). Hence, a new code set can be assimilated by anexemplary remote from any node that is part of the exemplary medianetwork 800. Once a new code set 804 for a newly installed device 802 isretained at a hub 202, the new code set 804 can be sent to each remoteregardless of its current room or location. Hence, when remote “#3” 128is next used and sensed in room one 108. The first node 204 in room one108 transmits the new code set 804 for the new device 802 in room two116 to the database of code sets 316 in remote “#3” 128. Likewise, whenremote “#1” 806 is next used and/or sensed, in this instance in roomthree 122, the third node 208 in room three 122 transmits the new codeset 804 for the new device 802 in room two 116 to the database of codesets 316 in remote “#1” 806. Hence, there are several ways that anexemplary media network (e.g., one of 100, 200, 600, 800) can impartcontext sensitivity to a portable or roving remote.

Exemplary Computing Device

FIG. 9 shows an exemplary computer 900 suitable as an environment forpracticing aspects of the subject matter. The components of exemplarycomputer 900 may include, but are not limited to, a processing unit 920,a system memory 930, and a system bus 921 that couples various systemcomponents including the system memory 930 to the processing unit 920.The system bus 921 may be any of several types of bus structuresincluding a memory bus or memory controller, a peripheral bus, and alocal bus using any of a variety of bus architectures. By way ofexample, and not limitation, such architectures include IndustryStandard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus,Enhanced ISA (EISAA) bus, Video Electronics Standards Association (VESA)local bus, and Peripheral Component Interconnect (PCI) bus also known asthe Mezzanine bus.

Exemplary computer 900 typically includes a variety of computer-readablemedia. Computer-readable media can be any available media that can beaccessed by exemplary computer 900 and includes both volatile andnonvolatile media, removable and non-removable media. By way of example,and not limitation, computer-readable media may comprise computerstorage media and communication media. Computer storage media includevolatile and nonvolatile, removable and non-removable media implementedin any method or technology for storage of information such ascomputer-readable instructions, data structures, program modules, orother data. Computer storage media includes, but is not limited to, RAM,ROM, EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical disk storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other medium which can be used to store the desired informationand which can be accessed by exemplary computer 900, Communication mediatypically embodies computer-readable instructions, data structures,program modules or other data in a modulated data signal such as acarrier wave or other transport mechanism and includes any informationdelivery media. The term “modulated data signal” means a signal that hasone or more of its characteristics set or changed in such a manner as toencode information in the signal. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection and wireless media such as acoustic, RF,infrared and other wireless media. Combinations of any of the aboveshould also be included within the scope of computer readable media.

The system memory 930 includes computer storage media in the form ofvolatile and/or nonvolatile memory such as read only memory (ROM) 931and random access memory (RAM) 932. A basic input/output system 933(BIOS), containing the basic routines that help to transfer informationbetween elements within exemplary computer 900, such as during start-up,is typically stored in ROM 931. RAM 932 typically contains data and/orprogram modules that are immediately accessible to and/or presentlybeing operated on by processing unit 920. By way of example, and notlimitation, FIG. 9 illustrates in RAM 932 an operating system 934,application programs 935, other program modules 936, and program data937, a database of code sets 332, program content 334, media networkstate information 336, media network control logic 338, etc. Althoughsome components of an exemplary media network hub 202 are depicted assoftware in random access memory 932, other implementations of anexemplary a hub or other components of a media network 200 can behardware or combinations of software and hardware.

The exemplary computer 900 may also include otherremovable/non-removable, volatile/nonvolatile computer storage media. Byway of example only, FIG. 9 illustrates a hard disk drive 941 that readsfrom or writes to non-removable, nonvolatile magnetic media, a magneticdisk drive 951 that reads from or writes to a removable, nonvolatilemagnetic disk 952, and an optical disk drive 955 that reads from orwrites to a removable, nonvolatile optical disk 956 such as a CD ROM orother optical media. Other removable/non-removable, volatile/nonvolatilecomputer storage media that can be used in the exemplary operatingenvironment include, but are not limited to, magnetic tape cassettes,flash memory cards, digital versatile disks, digital video tape, solidstate RAM, solid state ROM, and the like. The hard disk drive 941 istypically connected to the system bus 921 through a non-removable memoryinterface such as interface 940, and magnetic disk drive 951 and opticaldisk drive 955 are typically connected to the system bus 921 by aremovable memory interface such as interface 950.

The drives and their associated computer storage media discussed aboveand illustrated in FIG. 9 provide storage of computer-readableinstructions, data structures, program modules, and other data forexemplary computer 900. In FIG. 9, for example, hard disk drive 941 isillustrated as storing operating system 944, application programs 945,other program modules 946, and program data 947. Note that thesecomponents can either be the same as or different from operating system934, application programs 935, other program modules 936, and programdata 937. Operating system 944, application programs 945, other programmodules 946, and program data 947 are given different numbers here toillustrate that, at a minimum, they are different copies. A user mayenter commands and information into the exemplary computer 900 throughinput devices such as a keyboard 962 and pointing device 961, commonlyreferred to as a mouse, trackball, or touch pad. Other input devices(not shown) may include a microphone, joystick, game pad, satellitedish, scanner, or the like. These and other input devices are oftenconnected to the processing unit 920 through a user input interface 960that is coupled to the system bus, but may be connected by otherinterface and bus structures, such as a parallel port, game port, or auniversal serial bus (USB). A monitor 991 or other type of displaydevice is also connected to the system bus 921 via an interface, such asa video interface 990. In addition to the monitor 991, computers mayalso include other peripheral output devices such as speakers 997 andprinter 996, which may be connected through an output peripheralinterface 995.

The exemplary computer 900 may operate in a networked environment usinglogical connections to one or more remote computers, such as a remotecomputer 980. The remote computer 980 may be a personal computer, aserver, a router, a network PC, a peer device or other common networknode, and typically includes many or all of the elements described aboverelative to exemplary computer 900, although only a memory storagedevice 981 has been illustrated in FIG. 9. The logical connectionsdepicted in FIG. 9 include a local area network (LAN) 971 and a widearea network (WAN) 973, but may also include other networks. Suchnetworking environments are commonplace in offices, enterprise-widecomputer networks, intranets, and the Internet.

When used in a LAN networking environment, the exemplary computer 900 isconnected to the LAN 971 through a network interface or adapter 970.When used in a WAN networking environment, the exemplary computer 900typically includes a modem 972 or other means for establishingcommunications over the WAN 973, such as the Internet. The modem 972,which may be internal or external, may be connected to the system bus921 via the user input interface 960, or other appropriate mechanism. Ina networked environment, program modules depicted relative to theexemplary computer 900, or portions thereof, may be stored in the remotememory storage device. By way of example, and not limitation, FIG. 9illustrates remote application programs 985 as residing on memory device981. It will be appreciated that the network connections shown areexemplary and other means of establishing a communications link betweenthe computers may be used.

CONCLUSION

The foregoing describes an exemplary multimedia network system in whichroving remotes can act universally by adapting to context. Some of thesubject matter described above can be implemented in hardware, insoftware, or in both hardware and software. In certain implementations,the exemplary system and related methods may be described in the generalcontext of computer-executable instructions, such as program modules,being executed by a computer. Generally, program modules includeroutines, programs, objects, components, data structures, etc. thatperform particular tasks or implement particular abstract data types.The subject matter can also be practiced in distributed communicationsenvironments where tasks are performed over wireless communication byremote processing devices that are linked through a communicationsnetwork. In a wireless network, program modules may be located in bothlocal and remote communications device storage media including memorystorage devices.

1. A multimedia network system, comprising: a hub having access tomultimedia content; one or more nodes communicatively coupled with thehub and with respective controllable devices that use parts of themultimedia content, wherein a given node stores code set identifierscapable of identifying code sets for operating the controllable devicescoupled with the node; and one or more portable remote controllers forcommunicating with the hub via the nodes, wherein in response toswitching nodes when communicating with the hub, a portable remotecontroller automatically adopts active code sets of the controllabledevices coupled with the current node.
 2. The multimedia network systemas recited in claim 1, wherein each node comprises a transmitter and areceiver for two-way communication with the current remote controllerand each remote controller comprises a transmitter and a receiver fortwo-way communication with the current node.
 3. The multimedia networksystem as recited in claim 1, wherein the portable remote controlleradopts active code sets by receiving an identifier of a new code setfrom the current node.
 4. The multimedia network system as recited inclaim 1, wherein the portable remote controller adopts active code setsby receiving a new code set from the current node.
 5. The multimedianetwork system as recited in claim 1, wherein the portable remotecontroller comprises data storage for storing code sets and adoptsactive code sets by using a code set from the data storage space.
 6. Themultimedia network system as recited in claim 1, further comprising aunique identifier for each portable remote controller to enable the hubto associate an ongoing multimedia event with a portable remotecontroller that is being moved from a location of a first node to alocation of the current node.
 7. A method, comprising: sensing movementof a remote controller from node to node in a multimedia network thatincludes a hub communicatively coupled with multiple nodes; andinstructing the remote controller to use a particular code set tocontrol a device in a current location during the movement.
 8. Themethod as recited in claim 7, wherein the sensing and the instructingare performed by the hub.
 9. The method as recited in claim 8, whereinthe sensing and the instructing are performed by at least some of themultiple nodes.
 10. The method as recited in claim 7, wherein thesensing further comprises receiving an identity signal from the remotecontroller.
 11. The method as recited in claim 10, wherein the identitysignal comprises a unique identifier that identifies the remotecontroller within the multimedia network.
 12. The method as recited inclaim 7, wherein the instructing further comprises instructing theremote controller to use a code set stored on the remote controller. 13.The method as recited in claim 7, wherein the instructing furthercomprising sending the code set to the remote controller.
 14. The methodas recited in claim 13, wherein the hub performs the instructing and anode performs the sending.
 15. The method as recited in claim 13,wherein a node of the multimedia network requests the code set from thehub and receives the code set from the hub, and sends the code set tothe remote controller.
 16. A remote controller for a multimedia networkhaving nodes coupled with a hub and having controllable devices coupledwith each node, comprising: a unique identifier for locating the remotecontroller within the multimedia network; a receiver for inputtingupdated device control codes associated with devices in a currentlocation of the remote controller; a transmitter for sending the uniqueidentifier to the multimedia network during movement of the remotecontroller; wherein the hub locates the remote controller within themultimedia network during the movement via the unique identifier; andwherein the hub instructs the remote controller to change device controlcodes depending on the location of the remote controller.
 17. The remotecontroller as recited in claim 16, wherein the receiver of multimedianetwork and displays the locations on the remote controller.
 18. Theremote controller as recited in claim 16, wherein the remote controllerindicates to a user when the remote controller is not in communicationwith any of the nodes.
 19. The remote controller as recited in claim 16,wherein the hub instructs the remote controller to remove a code setassociated with a controllable device when the controllable device isremoved from the multimedia network.